package org.september.pisces.filestore.entity;

import org.september.smartdao.anno.AutoIncrease;
import org.september.smartdao.anno.Entity;
import org.september.smartdao.anno.Id;
import org.september.smartdao.common.BaseEntity;

import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.DefaultValue;
import com.gitee.sunchenbin.mybatis.actable.annotation.IsAutoIncrement;
import com.gitee.sunchenbin.mybatis.actable.annotation.IsKey;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;

/**
 * 文件存储池
 **/
@Entity
@Table("pisces_file_store_pool")
public class FileStorePool extends BaseEntity {

    /**
     *
     */
    @Id
    @AutoIncrease
    @IsKey
    @IsAutoIncrement
    @Column(name = "id", length = 20)
    private Long id;


    @Size(max = 64)
    @NotEmpty
    @Column(name = "pool_name", comment = "存储池名称", length = 64, isNull = false)
    private String poolName;

    /**
     * 存储类型,本地存储，OSS
     **/
    @Column(name = "store_type", comment = "存储类型,本地存储，OSS", type=MySqlTypeConstant.SMALLINT)
    @DefaultValue(value = "0")
    private Integer storeType;

    /**
     * 本地磁盘存储路径，多个路径用英文分号分隔。
     **/
    @Column(name = "disk_path", comment = "本地磁盘存储路径，多个路径用英文分号分隔", length = 255)
    private String diskPath;


    @Column(name = "usable_space", comment = "剩余存储空间GB")
    private Long usableSpace;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }


	public String getPoolName() {
		return poolName;
	}

	public void setPoolName(String poolName) {
		this.poolName = poolName;
	}

	public Integer getStoreType() {
		return storeType;
	}

	public void setStoreType(Integer storeType) {
		this.storeType = storeType;
	}

	public String getDiskPath() {
		return diskPath;
	}

	public void setDiskPath(String diskPath) {
		this.diskPath = diskPath;
	}

    public Long getUsableSpace() {
        return usableSpace;
    }

    public void setUsableSpace(Long usableSpace) {
        this.usableSpace = usableSpace;
    }
}
